// 16进制编码
#include "../include/std.h"

int HexEncode(const STD_BUFFER &bufIn, string &strOut, int iLow = 0);
/*编码
bufIn	输入
strOut	输出
iLow	1表示小写字母，0表示大写字母
返回输出数据长度。
*/

int HexEncode(const BYTE* data, int iLen, string& strOut, int iLow = 0);
/*编码
data	输入数据
iLen	输入数据长度
strOut	输出数据。
iLow	1表示小写字母，0表示大写字母
返回输出数据长度。
*/

int HexEncode(const BYTE* data, int iLen, char* pcOut, int iLow = 0);
/*编码
data	输入数据
iLen	输入数据长度
pcOut	输出数据。长度为iLen*2，没有0结束符。
iLow	1表示小写字母，0表示大写字母
返回输出数据长度。
*/

int HexDecode(const string &strIn, STD_BUFFER &bufOut);
/*解码
如果strIn的长度是奇数，会丢弃最后一个字节。
返回输出数据长度。
*/

int HexDecode(const char* pcIn, int iLen, STD_BUFFER& bufOut);
/*解码
pcIn	输入数据
iLen	输入数据长度。如果是奇数，会丢弃最后一个字节。-1表示自动获取。
bufOut	输出数据。
返回输出数据长度。
*/

int HexDecode(const char *pcIn, int iLen, BYTE *pOut);
/*解码
pcIn	输入数据
iLen	输入数据长度。如果是奇数，会丢弃最后一个字节。-1表示自动获取。
pOut	输出数据。长度为iLen/2。
返回输出数据长度。
*/

U8 HexDecode1(const char *pcHex);
/*将2字节的字符串解码为1字节的2进制数据。
 * 没有参数合法性检测
 */
